HU

Sistema De "trem" By Mock

Por Hudsin, 22 de dez. de 2010 em Actions e Talkactions

otserv
tibia
script
45
11.2k
HudsinH
22 de dezembro de 2010 às 00:36

O Script consiste em fazer com que seja possivel vc andar de trem(a vá).

Obs: Não escontrei o system no xtibia e resolvi postar :sosad:

Author: Mock

Algumas modificações: Piporealino ---Xtibia

Testado em: TFS 0.3.6

 

Adicione esta tag em data\actions\actions.xml:

 

<action itemid="7131" event="script" value="tremsystem.lua" />
<action itemid="7132" event="script" value="tremsystem.lua" />

 

 

Depois,crie um arquivo.lua em data\actions\scripts e coloque o nome de tremsystem.lua e adicione:

 

 

--Script by mock the bear
--Config
local SPEED = 200
local PLAYERSPEED = 250
--End
local RAILS = {7121, 7122, 7123, 7124, 7125, 7126, 7127, 7128, 7129, 7130} --Thxy rails itemid by nord 
local CART = {[0] = 7132, [2] = 7132, [3] =7131, [1] =7131}
local CONFIG = {
[7121] = 0,[7122] = 0,
[7123] = {EAST, SOUTH},
[7124] = {WEST, SOUTH},
[7125] = {EAST, NORTH},
[7126] = {WEST, NORTH},
[7127] = 0,[7128] = 0,
[7129] = 0,[7130] = 0,
       [152] = {NORTH, SOUTH},     --modificado por  Piporealino Xtibia
       [153] = {SOUTH, NORTH},         
       [154] = {EAST, WEST},   
       [155] = {WEST, EAST},
--Random
}
local reverse = {[0] = 2, 3, 0, 1} -- All that table was made by nord.
local function moveTrain(cid, frompos, direc)
local tab
if not isPlayer(cid) then
	return
end
local pos = getCreaturePosition(cid)
local rar = findRail(pos)
if not rar then
	doPlayerSetNoMove(cid, false)
	doRemoveCondition(cid, CONDITION_OUTFIT)
	doChangeSpeed(cid, -PLAYERSPEED)
	doMoveCreature(cid, direc)
else
	tab = CONFIG[rar]
	if tab and type(tab) == 'table' then
		direc =  tab[tab[1] == reverse[direc] and 2 or 1] -- by nord here
	end
	doSetItemOutfit(cid, CART[direc], -1)
	doMoveCreature(cid, direc)
	addEvent(moveTrain, SPEED, cid, pos,direc)
end
end
function findRail(p)
local p_ = {x=p.x, y=p.y, z=p.z}
for i=0,10 do
	p_.stackpos = i
	local t = getTileThingByPos(p_)
	if isInArray(RAILS, t.itemid) then
		return t.itemid,t.uid
	end
end
end
function onUse(cid, item, frompos) --Script by mock the bear
if hasCondition(cid, CONDITION_OUTFIT) or (item.actionid < 500 and item.actionid > 503) then
	return false
end
doTeleportThing(cid, frompos, false)
doPlayerSetNoMove(cid, true)
   doChangeSpeed(cid, PLAYERSPEED)
addEvent(moveTrain, SPEED, cid, frompos, item.actionid-500)
return true
end

 

 

Depois de tudo pronto,deverá funcionar como mostra o video:

 

 

 

Aqui tem uma ideia que achei interessante :bigsmile:

 

 

9fyz5x.png

 

 

Espero que gostem :laugh:

 

Lembrando que se você usa server global crie novos trens pois se usar os 7131 e 7132 (se não me engano), qualquer trem que estiver no mapa, se clicado, ira bugar.(by Piporealino)

 

Rep+ por trazer ao xtibia :tongue2:

Editado Fevereiro 1 por Hudsin

Dudu08267D
22 de dezembro de 2010 às 21:29
:D gostei mas pelo que eu sei este script vem no Pokemon Distro 4.2(obs nao to criticando)
superbruno100S
29 de dezembro de 2010 às 20:31

Mt bom ;D

TibizeiroT
31 de dezembro de 2010 às 04:13

REP+. Mas como muda o sprite do carrinho? eu queria por outro e nao achei nehum "newtype" no codigo...

arkiresA
31 de dezembro de 2010 às 11:20

sendo uma action vc pode coloca ele em outro objeto so catando a action do tren e colocando no objeto desejado

HudsinH
01 de janeiro de 2011 às 16:59

No script,onde está o id do trem,você coloca o id do objeto desejado,modificando pelo novo id nas posições(east,west,north,south) nas linhas:

 

local RAILS = {7121, 7122, 7123, 7124, 7125, 7126, 7127, 7128, 7129, 7130} --Thxy rails itemid by nord 
local CART = {[0] = 7132, [2] = 7132, [3] =7131, [1] =7131}
local CONFIG = {
       [7121] = 0,[7122] = 0,
       [7123] = {EAST, SOUTH},
       [7124] = {WEST, SOUTH}, 
       [7125] = {EAST, NORTH},
       [7126] = {WEST, NORTH},
       [7127] = 0,[7128] = 0,
       [7129] = 0,[7130] = 0,
       --Random

 

Você pode dar /i 7121, /i 7122 etc...ver o que significa cada id e subistituir pelo id desejado.

 

e na tag:

<action itemid="7131" event="script" value="tremsystem.lua" />
<action itemid="7132" event="script" value="tremsystem.lua" />

 

no lugar dos ids dai,você coloca o id desejado.

Editado Janeiro 2 por Hudsin

superdrakoS
06 de janeiro de 2011 às 14:41

Eu testei aqui mas o cart fica parado e o boneco encima e nao anda , tem como arrumar ? :confused:

 

(O id do cart e 7132)

HudsinH
08 de janeiro de 2011 às 15:58

Não sei o por que disso,você fez todos os passos corretamente? aqui funcionou :frown:

PiporealinoP
09 de janeiro de 2011 às 07:22

aqui ele fica parado em cima do carro, ele soh anda se o carro estiver na curva...sabe resolver?

superdrakoS
09 de janeiro de 2011 às 14:01

Não sei o por que disso,você fez todos os passos corretamente? aqui funcionou :frown:

 

 

Sim fiz todos os passos corretamente sem erro :confused:

HudsinH
09 de janeiro de 2011 às 16:48

Quanto a isso nao sei resolver,eu só trouce o script,caso queiram falar com o autor do script clika --> Mock

masterzsM
10 de janeiro de 2011 às 02:35

Muito bom ;D.

Como sempre o Mock.

PiporealinoP
12 de janeiro de 2011 às 19:24

consegui arrumar o bug que fica parado em cima, foi na gambiarra mas deu certinho...

se alguem ainda quiser da um toque ae no post que eu edito aqui...

abraço

HudsinH
13 de janeiro de 2011 às 17:21

Posta aqui sem o bug que eu atualizo no post pow... vai ajudar muita gente ^^ vlw :smile_positivo:

3 semanas depois...
PiporealinoP
30 de janeiro de 2011 às 12:48

Opa...desculpe a demora, é que parei com meu serv.

 

a gambiarra que eu fiz foi o seguinte:

 

eu reparei que só os trilhos de curva não bugava..fui da uma olhada no script reparei que só eles estavam mostrando a direção, intao fiz o seguinte:

 

logo a baixo de:

       [7121] = 0,[7122] = 0,
       [7123] = {EAST, SOUTH},
       [7124] = {WEST, SOUTH},
       [7125] = {EAST, NORTH},
       [7126] = {WEST, NORTH},
       [7127] = 0,[7128] = 0,
       [7129] = 0,[7130] = 0,

 

pus:

		[152] = {NORTH, SOUTH},
	[153] = {SOUTH, NORTH},		
	[154] = {EAST, WEST},	
	[155] = {WEST, EAST},	

 

mas preste bem atenção, 152, 153, 154 e 155 são os ids dos trilhos que eu criei e que vocês também precisarão criar.

no caso 152 é um trilho vertical e {NORTH, SOUTH} que vai do SUL para o NORTE(o espaço da primeira virgula é pra onde vai e o segundo espaço é de onde).

 

agora é só por o trem nos novos trilhos... lembre-se que cada novo trilho vai pra uma direção.

 

ja fazendo uma observação, se você usa server global crie novos trens pois se usar os 7131 e 7132 (se não me engano), qualquer trem que estiver no mapa, se clicado, ira bugar.

 

intão é isso.

 

REP + se ajudei... Abraços!